#if !defined(__APP_POOL)
#define __APP_POOL
#define POOL_QUEUE_NAME "/GATEWAY_POOL_QUEUE"
#define POOL_THREAD_NUM 10

typedef struct  
{
    void *(*func)(void *);
    void *arg;
} app_pool_task_t;


/**
 * @brief 初始化线程池
 *   1 先创建队列
 *   2 再创建线程池
 */
int app_pool_init();


/**
 * @brief 向线程池提交 任务 （函数指针，参数）
 */
int app_pool_submit_task(void *(*func)(void *), void *arg);

/**
 * @brief 销毁线程池
 *  把线程逐个 cancel 
 *  关闭队列
 *  删除队列
 */
void app_pool_destroy();


#endif // __APP_POOL
